Skip to content

feat(web-ui): add an Open action to installed MiniApp listings - #1929

Merged
bobleer merged 1 commit into
GCWing:mainfrom
bobleer:bob/miniapp-market-open-button
Jul 31, 2026
Merged

feat(web-ui): add an Open action to installed MiniApp listings#1929
bobleer merged 1 commit into
GCWing:mainfrom
bobleer:bob/miniapp-market-open-button

Conversation

@bobleer

@bobleer bobleer commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • give installed MiniApp listings an Open action in the market detail modal, so an installed app can be launched without leaving for the Installed tab
  • replace the disabled "Installed" button with an inert status line (check icon), freeing the primary slot for Open
  • keep Update as the primary action when a newer release exists, with Open demoted to secondary
  • shorten the update label from "Update manually" to "Update" and add the new market.detail.open string in en-US, zh-CN, and zh-TW

Action row per state (primary is rightmost):

State Actions
Not installed ♥ · Install
Installed, up to date ♥ · ✓ Installed · Open
Installed, update available ♥ · Open · Update

Type and Areas

Type: UI/UX

Areas: web UI (MiniApp market), locales

Motivation / Impact

The market detail modal previously ended installed apps on a disabled primary button labelled "Installed" — carrying a refresh icon it could not act on. There was no way to open an installed app from the market, so the flow dead-ended and users had to switch to the Installed tab to launch what they had just been reading about. The update state also had to compete with that inert button for attention.

Open reuses the same scene routing as a fresh install: it closes the modal and activates the existing miniapp:<appId> tab, or opens one when absent. Like Install/Update, it stays disabled when the app requires {workspace} in a remote workspace.

Verification

  • pnpm run type-check:web — pass
  • pnpm --dir src/web-ui exec eslint src/app/scenes/miniapps/views/MiniAppMarketView.tsx — pass
  • pnpm run i18n:contract:test — 37 passed, 0 failed
  • pnpm run i18n:audit — passed with 0 warnings

Reviewer Notes

Market grid cards still show no install state: card data comes from the listing payload, and install status is resolved per-listing only when the detail modal opens. Badging cards as installed/updatable would need a batch status lookup, so it is left out of this PR.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

The market detail modal ended installed apps on a disabled "Installed"
button, so there was no way to launch an app from the market and the
update state was easy to miss.

- show "Installed" as an inert status line and give the primary slot to
  a new Open action that focuses (or opens) the app's scene tab
- keep Update as the primary action when a newer release exists, with
  Open demoted to secondary
- shorten the update label to "Update" and add the "Open" string across
  en-US, zh-CN, and zh-TW
@bobleer
bobleer merged commit 26370da into GCWing:main Jul 31, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant